/**
 * 开发团队 : 未来科技
 * 开发人员 : ww
 * 开发时间 : 2020/5/17 1:25 PM
 * 文件名称 : index.js
 * 开发工具 : WebStorm
 * 功能描述 : 路由
 */

// 引入 express 模块
const express = require('express')
const sha1 = require('sha1')

const reply = require('../reply')
const Wechat = require('../wechat/wechat')
const { url } = require('../config')

// 获取 Router
const Router = express.Router()
// 创建路由器对象
const ruoter = new Router()


// 创建实例对象
const wechatAPi = new Wechat()

ruoter.get("/search", async (req, res) => {

    // 生成随机字符串
    const noncestr = Math.random().toString().split('.')[1]
    // 时间戳
    const timestamp = Date.now()
    // 获取票据
    const { ticket } = await wechatAPi.fetchTicket()
    //1. 组合参与签名的参数：jsapi_ticket(临时票据)、noncestr(随机字符串)、timestamp(时间戳)、url(当前服务器地址)
    const arr = [
        `jsapi_ticket=${ticket}`,
        `noncestr=${noncestr}`,
        `timestamp=${timestamp}`,
        `url=${url}/search`
    ]
    // 2. 将参数进行字典排序，以"&"拼接
    const str = arr.join('&')
    // 3. 进行sha1加密，最终生成 signature
    const signature = sha1(str)

    res.render("search", {signature, noncestr, timestamp})
})

// 接收处理所有消息
ruoter.use(reply())


module.exports = ruoter
